// Copyright 2020 The XLS Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// BEGIN_CONFIG
// sample_options {
//   input_is_dslx: true
//   sample_type: SAMPLE_TYPE_FUNCTION
//   ir_converter_args: "--top=main"
//   convert_to_ir: true
//   optimize_ir: true
//   use_jit: true
//   codegen: true
//   codegen_args: "--generator=pipeline"
//   codegen_args: "--pipeline_stages=3"
//   codegen_args: "--reset_data_path=false"
//   simulate: false
//   use_system_verilog: true
//   calls_per_sample: 1
// }
// inputs {
//   function_args {
//     args: "bits[21]:0x4959e"
//     args: "bits[21]:0x78d8d"
//     args: "bits[21]:0x1c12e2"
//     args: "bits[21]:0x1842d4"
//     args: "bits[21]:0x42031"
//     args: "bits[21]:0x17e91b"
//     args: "bits[21]:0x3e5db"
//     args: "bits[21]:0x92655"
//     args: "bits[21]:0xb4c53"
//     args: "bits[21]:0xfffff"
//     args: "bits[21]:0xc985f"
//     args: "bits[21]:0x1cb6a8"
//     args: "bits[21]:0xb94d1"
//     args: "bits[21]:0x1b10cd"
//     args: "bits[21]:0x1cb0ae"
//     args: "bits[21]:0x23912"
//     args: "bits[21]:0x9df0"
//     args: "bits[21]:0x144f32"
//     args: "bits[21]:0x5a37a"
//     args: "bits[21]:0x19fd8"
//     args: "bits[21]:0x15e6b3"
//     args: "bits[21]:0x575e0"
//     args: "bits[21]:0x38987"
//     args: "bits[21]:0x200"
//     args: "bits[21]:0x6514f"
//     args: "bits[21]:0x1b880d"
//     args: "bits[21]:0xc0bb5"
//     args: "bits[21]:0x1c5af5"
//     args: "bits[21]:0x1e44b0"
//     args: "bits[21]:0x16ed5e"
//     args: "bits[21]:0x6163f"
//     args: "bits[21]:0x15ce33"
//     args: "bits[21]:0x6509b"
//     args: "bits[21]:0x10129c"
//     args: "bits[21]:0x45717"
//     args: "bits[21]:0x1e6e98"
//     args: "bits[21]:0x18c8b"
//     args: "bits[21]:0x1113c7"
//     args: "bits[21]:0x13b2c1"
//     args: "bits[21]:0x1e0a4c"
//     args: "bits[21]:0xc35bb"
//     args: "bits[21]:0x41b0f"
//     args: "bits[21]:0x1d4f49"
//     args: "bits[21]:0x1b6d38"
//     args: "bits[21]:0x843a2"
//     args: "bits[21]:0x1d1480"
//     args: "bits[21]:0x186547"
//     args: "bits[21]:0x126281"
//     args: "bits[21]:0x176016"
//     args: "bits[21]:0x137fb7"
//     args: "bits[21]:0x5f44c"
//     args: "bits[21]:0x19a041"
//     args: "bits[21]:0x127587"
//     args: "bits[21]:0x115e2"
//     args: "bits[21]:0xc3f50"
//     args: "bits[21]:0x874ac"
//     args: "bits[21]:0x19bd71"
//     args: "bits[21]:0x10cee9"
//     args: "bits[21]:0x125395"
//     args: "bits[21]:0x1ac3da"
//     args: "bits[21]:0x6b00a"
//     args: "bits[21]:0x1499ab"
//     args: "bits[21]:0x708d6"
//     args: "bits[21]:0x1daacb"
//     args: "bits[21]:0x800"
//     args: "bits[21]:0x1bbed1"
//     args: "bits[21]:0x9cb0a"
//     args: "bits[21]:0x1fb0fb"
//     args: "bits[21]:0x27e88"
//     args: "bits[21]:0x18a483"
//     args: "bits[21]:0x1c31c3"
//     args: "bits[21]:0x17daec"
//     args: "bits[21]:0x11dee3"
//     args: "bits[21]:0x15c5d7"
//     args: "bits[21]:0x1af394"
//     args: "bits[21]:0x1a2d5c"
//     args: "bits[21]:0xaccec"
//     args: "bits[21]:0x1babc0"
//     args: "bits[21]:0x8"
//     args: "bits[21]:0xbb408"
//     args: "bits[21]:0xfb069"
//     args: "bits[21]:0x1574f1"
//     args: "bits[21]:0x1ab9f6"
//     args: "bits[21]:0x115626"
//     args: "bits[21]:0x8e89e"
//     args: "bits[21]:0x15e893"
//     args: "bits[21]:0x1e7e2b"
//     args: "bits[21]:0x171587"
//     args: "bits[21]:0xdd227"
//     args: "bits[21]:0x10"
//     args: "bits[21]:0x14698b"
//     args: "bits[21]:0x4000"
//     args: "bits[21]:0x149594"
//     args: "bits[21]:0x10236a"
//     args: "bits[21]:0x1d7efa"
//     args: "bits[21]:0x1ba1f7"
//     args: "bits[21]:0xcef46"
//     args: "bits[21]:0xdb6a"
//     args: "bits[21]:0x1a60ed"
//     args: "bits[21]:0x36044"
//     args: "bits[21]:0x17183f"
//     args: "bits[21]:0xc92f0"
//     args: "bits[21]:0x19852b"
//     args: "bits[21]:0xe26ff"
//     args: "bits[21]:0x8f4c"
//     args: "bits[21]:0x1d5666"
//     args: "bits[21]:0xaaf1c"
//     args: "bits[21]:0x13b216"
//     args: "bits[21]:0x1714d6"
//     args: "bits[21]:0x16c87a"
//     args: "bits[21]:0x1000"
//     args: "bits[21]:0xce64c"
//     args: "bits[21]:0x533c2"
//     args: "bits[21]:0xa3aa4"
//     args: "bits[21]:0x1afbdb"
//     args: "bits[21]:0x8001c"
//     args: "bits[21]:0x19e83d"
//     args: "bits[21]:0xe498e"
//     args: "bits[21]:0x11e190"
//     args: "bits[21]:0x1e15d6"
//     args: "bits[21]:0x40"
//     args: "bits[21]:0xd6d9f"
//     args: "bits[21]:0x8000"
//     args: "bits[21]:0x10992"
//     args: "bits[21]:0x4"
//     args: "bits[21]:0x805c4"
//     args: "bits[21]:0x1178a2"
//     args: "bits[21]:0x26e2e"
//     args: "bits[21]:0x7c82f"
//     args: "bits[21]:0x100"
//     args: "bits[21]:0x8b9d"
//     args: "bits[21]:0x22d7d"
//     args: "bits[21]:0xe28e"
//     args: "bits[21]:0x7d285"
//     args: "bits[21]:0x1dba07"
//     args: "bits[21]:0xeb636"
//     args: "bits[21]:0x3908d"
//     args: "bits[21]:0x156f0"
//     args: "bits[21]:0x1ccec3"
//     args: "bits[21]:0x7d68d"
//     args: "bits[21]:0x13cf36"
//     args: "bits[21]:0x10"
//     args: "bits[21]:0xe1281"
//     args: "bits[21]:0xa7ee5"
//     args: "bits[21]:0x3bf92"
//     args: "bits[21]:0x142030"
//     args: "bits[21]:0x74149"
//     args: "bits[21]:0x9878e"
//     args: "bits[21]:0x11b785"
//     args: "bits[21]:0x1c1898"
//     args: "bits[21]:0xe899"
//     args: "bits[21]:0xae808"
//     args: "bits[21]:0x1d39f7"
//     args: "bits[21]:0x1c55a7"
//     args: "bits[21]:0x1f6832"
//     args: "bits[21]:0x119481"
//     args: "bits[21]:0x100b45"
//     args: "bits[21]:0x14977a"
//     args: "bits[21]:0x2000"
//     args: "bits[21]:0x8"
//     args: "bits[21]:0x4b624"
//     args: "bits[21]:0xc7aa9"
//     args: "bits[21]:0x20404"
//     args: "bits[21]:0x4ac6a"
//     args: "bits[21]:0x213a7"
//     args: "bits[21]:0x13ee0c"
//     args: "bits[21]:0x106092"
//     args: "bits[21]:0x1be77b"
//     args: "bits[21]:0x425bd"
//     args: "bits[21]:0x1aac06"
//     args: "bits[21]:0x200"
//     args: "bits[21]:0xf110"
//     args: "bits[21]:0x143be1"
//     args: "bits[21]:0x9c2ca"
//     args: "bits[21]:0x194d00"
//     args: "bits[21]:0x38451"
//     args: "bits[21]:0xdfc2b"
//     args: "bits[21]:0x14661b"
//     args: "bits[21]:0x6c7bf"
//     args: "bits[21]:0xa9872"
//     args: "bits[21]:0x1489db"
//     args: "bits[21]:0x1f8c02"
//     args: "bits[21]:0x179e18"
//     args: "bits[21]:0x183d7d"
//     args: "bits[21]:0x125365"
//     args: "bits[21]:0x10b0a6"
//     args: "bits[21]:0xe7836"
//     args: "bits[21]:0x139d99"
//     args: "bits[21]:0x8b7c"
//     args: "bits[21]:0x1087f3"
//     args: "bits[21]:0x843ae"
//     args: "bits[21]:0x1113a6"
//     args: "bits[21]:0x69a97"
//     args: "bits[21]:0x112172"
//     args: "bits[21]:0xce9ef"
//     args: "bits[21]:0xa0649"
//     args: "bits[21]:0xb19dc"
//     args: "bits[21]:0x2ba95"
//     args: "bits[21]:0x83895"
//     args: "bits[21]:0x12b15a"
//     args: "bits[21]:0x61239"
//     args: "bits[21]:0xe3ae7"
//     args: "bits[21]:0x1a1aaa"
//     args: "bits[21]:0x12c4e2"
//     args: "bits[21]:0x133582"
//     args: "bits[21]:0x1b7b70"
//     args: "bits[21]:0x214a9"
//     args: "bits[21]:0xe3c22"
//     args: "bits[21]:0xf0a6f"
//     args: "bits[21]:0xd80b3"
//     args: "bits[21]:0xdd4d1"
//     args: "bits[21]:0xb3257"
//     args: "bits[21]:0x328ed"
//     args: "bits[21]:0xdd137"
//     args: "bits[21]:0x112c6f"
//     args: "bits[21]:0xd39f7"
//     args: "bits[21]:0x1c7373"
//     args: "bits[21]:0x1f2427"
//     args: "bits[21]:0xad06f"
//     args: "bits[21]:0x19e2c3"
//     args: "bits[21]:0x1cacc3"
//     args: "bits[21]:0x10308c"
//     args: "bits[21]:0x1f224"
//     args: "bits[21]:0x137ed7"
//     args: "bits[21]:0x109295"
//     args: "bits[21]:0x37b4c"
//     args: "bits[21]:0x15d664"
//     args: "bits[21]:0x11522f"
//     args: "bits[21]:0x13b9c4"
//     args: "bits[21]:0x100"
//     args: "bits[21]:0x4"
//     args: "bits[21]:0xfffff"
//     args: "bits[21]:0x19bb9d"
//     args: "bits[21]:0x2"
//     args: "bits[21]:0x144f5d"
//     args: "bits[21]:0xba4ad"
//     args: "bits[21]:0xec024"
//     args: "bits[21]:0x86b39"
//     args: "bits[21]:0x4e1d0"
//     args: "bits[21]:0x100"
//     args: "bits[21]:0x39015"
//     args: "bits[21]:0x1645a7"
//     args: "bits[21]:0x1ff7d9"
//     args: "bits[21]:0xae85d"
//     args: "bits[21]:0x7aca6"
//     args: "bits[21]:0x1e21da"
//     args: "bits[21]:0x1895cc"
//     args: "bits[21]:0x1164dd"
//     args: "bits[21]:0x222ef"
//     args: "bits[21]:0xed977"
//     args: "bits[21]:0x12ccda"
//     args: "bits[21]:0x1dbcb6"
//     args: "bits[21]:0x18cfd3"
//     args: "bits[21]:0x13fcfc"
//     args: "bits[21]:0x56889"
//     args: "bits[21]:0x19598d"
//     args: "bits[21]:0x44020"
//     args: "bits[21]:0x1f24c4"
//     args: "bits[21]:0x1710d0"
//     args: "bits[21]:0x13c39d"
//     args: "bits[21]:0x100000"
//     args: "bits[21]:0x1e5386"
//     args: "bits[21]:0x1de3dc"
//     args: "bits[21]:0xff70a"
//     args: "bits[21]:0x120a74"
//     args: "bits[21]:0x1db261"
//     args: "bits[21]:0x64f34"
//     args: "bits[21]:0x19e434"
//     args: "bits[21]:0xaa5e8"
//     args: "bits[21]:0x7a141"
//     args: "bits[21]:0x145941"
//     args: "bits[21]:0x19ee93"
//     args: "bits[21]:0xe7f37"
//     args: "bits[21]:0x1bdc5f"
//     args: "bits[21]:0x3c6b8"
//     args: "bits[21]:0x7d393"
//     args: "bits[21]:0xb128d"
//     args: "bits[21]:0x149310"
//     args: "bits[21]:0x11887d"
//     args: "bits[21]:0x1f180a"
//     args: "bits[21]:0x1d9615"
//     args: "bits[21]:0x80"
//     args: "bits[21]:0x3ba73"
//     args: "bits[21]:0x11f489"
//     args: "bits[21]:0x822f1"
//     args: "bits[21]:0x151174"
//     args: "bits[21]:0x9cae5"
//     args: "bits[21]:0x38a2d"
//     args: "bits[21]:0x800"
//     args: "bits[21]:0x1d2e6e"
//     args: "bits[21]:0x18bfb1"
//     args: "bits[21]:0xf84fe"
//     args: "bits[21]:0x1117cf"
//     args: "bits[21]:0x10bc03"
//     args: "bits[21]:0x1c83aa"
//     args: "bits[21]:0x1628a6"
//     args: "bits[21]:0x1831a"
//     args: "bits[21]:0xfaf05"
//     args: "bits[21]:0x12cf1e"
//     args: "bits[21]:0xca0a0"
//     args: "bits[21]:0xf886e"
//     args: "bits[21]:0x3a251"
//     args: "bits[21]:0xab31e"
//     args: "bits[21]:0x48be2"
//     args: "bits[21]:0x31046"
//     args: "bits[21]:0x55c34"
//     args: "bits[21]:0x7fbdc"
//     args: "bits[21]:0x92b77"
//     args: "bits[21]:0x12bd84"
//     args: "bits[21]:0x1657f4"
//     args: "bits[21]:0x13dd8b"
//     args: "bits[21]:0x1e5770"
//     args: "bits[21]:0xf4e02"
//     args: "bits[21]:0x14efa8"
//     args: "bits[21]:0xe146a"
//     args: "bits[21]:0x97dfe"
//     args: "bits[21]:0x1b1edd"
//     args: "bits[21]:0x1f58ea"
//     args: "bits[21]:0x20"
//     args: "bits[21]:0x100000"
//     args: "bits[21]:0xc30ac"
//     args: "bits[21]:0x8000"
//     args: "bits[21]:0xd2392"
//     args: "bits[21]:0x11912e"
//     args: "bits[21]:0xaca1d"
//     args: "bits[21]:0x1147e2"
//     args: "bits[21]:0x1f55cc"
//     args: "bits[21]:0xeb801"
//     args: "bits[21]:0x10482a"
//     args: "bits[21]:0x369ba"
//     args: "bits[21]:0x79563"
//     args: "bits[21]:0x1cf38a"
//     args: "bits[21]:0x6c1f1"
//     args: "bits[21]:0xec129"
//     args: "bits[21]:0x10cb47"
//     args: "bits[21]:0x1a7cfb"
//     args: "bits[21]:0x14a139"
//     args: "bits[21]:0x334f3"
//     args: "bits[21]:0x184e14"
//     args: "bits[21]:0x554d3"
//     args: "bits[21]:0x4f12f"
//     args: "bits[21]:0x9a7e6"
//     args: "bits[21]:0x1f372f"
//     args: "bits[21]:0x1efd9c"
//     args: "bits[21]:0x1079c1"
//     args: "bits[21]:0x9f80b"
//     args: "bits[21]:0x1583f8"
//     args: "bits[21]:0x15736d"
//     args: "bits[21]:0x138901"
//     args: "bits[21]:0x124f0b"
//     args: "bits[21]:0x1a1efb"
//     args: "bits[21]:0x19ab6f"
//     args: "bits[21]:0x151d69"
//     args: "bits[21]:0x133d0b"
//     args: "bits[21]:0x60232"
//     args: "bits[21]:0x1bed12"
//     args: "bits[21]:0x40e87"
//     args: "bits[21]:0x8000"
//     args: "bits[21]:0xf192b"
//     args: "bits[21]:0x2f64d"
//     args: "bits[21]:0x88bf4"
//     args: "bits[21]:0x3b351"
//     args: "bits[21]:0x41cdc"
//     args: "bits[21]:0xa60a6"
//     args: "bits[21]:0x1b4abb"
//     args: "bits[21]:0x126d76"
//     args: "bits[21]:0xfce4b"
//     args: "bits[21]:0xc0315"
//     args: "bits[21]:0xe5e"
//     args: "bits[21]:0x100584"
//     args: "bits[21]:0xb06a9"
//     args: "bits[21]:0x1c0ab1"
//     args: "bits[21]:0xd4da9"
//     args: "bits[21]:0xe1e80"
//     args: "bits[21]:0x16726f"
//     args: "bits[21]:0x27e44"
//     args: "bits[21]:0x189880"
//     args: "bits[21]:0x4ffd0"
//     args: "bits[21]:0xf681b"
//     args: "bits[21]:0x101967"
//     args: "bits[21]:0x145b40"
//     args: "bits[21]:0x1b66d0"
//     args: "bits[21]:0x1b995c"
//     args: "bits[21]:0x20548"
//     args: "bits[21]:0x1e66b5"
//     args: "bits[21]:0x1a496d"
//     args: "bits[21]:0x114310"
//     args: "bits[21]:0xe832d"
//     args: "bits[21]:0x3809a"
//     args: "bits[21]:0x9bdf1"
//     args: "bits[21]:0x93145"
//     args: "bits[21]:0x4f152"
//     args: "bits[21]:0x1a4073"
//     args: "bits[21]:0x1871a1"
//     args: "bits[21]:0x1eb60f"
//     args: "bits[21]:0x4487d"
//     args: "bits[21]:0x2"
//     args: "bits[21]:0x10087b"
//     args: "bits[21]:0x1b985e"
//     args: "bits[21]:0x10a316"
//     args: "bits[21]:0x101c28"
//     args: "bits[21]:0x668bb"
//     args: "bits[21]:0x1da04c"
//     args: "bits[21]:0x11c72f"
//     args: "bits[21]:0x1a8bc8"
//     args: "bits[21]:0x100000"
//     args: "bits[21]:0x1f6321"
//     args: "bits[21]:0x56ba4"
//     args: "bits[21]:0x18fab9"
//     args: "bits[21]:0x1ddf91"
//     args: "bits[21]:0x69324"
//     args: "bits[21]:0x163ff2"
//     args: "bits[21]:0x29f89"
//     args: "bits[21]:0x115a48"
//     args: "bits[21]:0x1b3954"
//     args: "bits[21]:0x22c18"
//     args: "bits[21]:0x15e6ad"
//     args: "bits[21]:0xc56b8"
//     args: "bits[21]:0x1c1245"
//     args: "bits[21]:0x158b7f"
//     args: "bits[21]:0x10"
//     args: "bits[21]:0x160629"
//     args: "bits[21]:0x1542f4"
//     args: "bits[21]:0x4c39e"
//     args: "bits[21]:0x1c048e"
//     args: "bits[21]:0x1bb80e"
//     args: "bits[21]:0xdd799"
//     args: "bits[21]:0x10"
//     args: "bits[21]:0x379bd"
//     args: "bits[21]:0x15f051"
//     args: "bits[21]:0x10117d"
//     args: "bits[21]:0x1d089a"
//     args: "bits[21]:0x94551"
//     args: "bits[21]:0x165801"
//     args: "bits[21]:0x481f0"
//     args: "bits[21]:0x1f50d9"
//     args: "bits[21]:0x124545"
//     args: "bits[21]:0x72e27"
//     args: "bits[21]:0x118183"
//     args: "bits[21]:0x1f5619"
//     args: "bits[21]:0xdc013"
//     args: "bits[21]:0x73ec2"
//     args: "bits[21]:0x40000"
//     args: "bits[21]:0x1c423e"
//     args: "bits[21]:0x154554"
//     args: "bits[21]:0xda54a"
//     args: "bits[21]:0x40000"
//     args: "bits[21]:0xdab68"
//     args: "bits[21]:0x18da09"
//     args: "bits[21]:0x1b693c"
//     args: "bits[21]:0x1d6005"
//     args: "bits[21]:0x2ddd9"
//     args: "bits[21]:0x10c700"
//     args: "bits[21]:0x16f28c"
//     args: "bits[21]:0x40"
//     args: "bits[21]:0x1c19ac"
//     args: "bits[21]:0x200"
//     args: "bits[21]:0xc8f44"
//     args: "bits[21]:0x19cb78"
//     args: "bits[21]:0x13c86c"
//     args: "bits[21]:0x12cfa4"
//     args: "bits[21]:0x174839"
//     args: "bits[21]:0x1f6c4f"
//     args: "bits[21]:0x1dab5f"
//     args: "bits[21]:0x122e69"
//     args: "bits[21]:0x1ae449"
//     args: "bits[21]:0x1efcf1"
//     args: "bits[21]:0x188668"
//     args: "bits[21]:0x10000"
//     args: "bits[21]:0x94b7c"
//     args: "bits[21]:0x159e48"
//     args: "bits[21]:0x1e418c"
//     args: "bits[21]:0x768f6"
//     args: "bits[21]:0x5eec7"
//     args: "bits[21]:0x80"
//     args: "bits[21]:0x1a8423"
//     args: "bits[21]:0x1efdbd"
//     args: "bits[21]:0xa413c"
//     args: "bits[21]:0xe9cfd"
//     args: "bits[21]:0xf6cdf"
//     args: "bits[21]:0x152241"
//     args: "bits[21]:0x175b23"
//     args: "bits[21]:0x200"
//     args: "bits[21]:0x19809b"
//     args: "bits[21]:0x10"
//     args: "bits[21]:0x80ce7"
//     args: "bits[21]:0xecd4f"
//     args: "bits[21]:0x1f5656"
//     args: "bits[21]:0x151e70"
//     args: "bits[21]:0x9c95b"
//     args: "bits[21]:0x1f066f"
//     args: "bits[21]:0x10a058"
//     args: "bits[21]:0x105350"
//     args: "bits[21]:0x82af5"
//     args: "bits[21]:0x11d739"
//     args: "bits[21]:0x80"
//     args: "bits[21]:0x1e5cb7"
//     args: "bits[21]:0x1b4b75"
//     args: "bits[21]:0xd11f6"
//     args: "bits[21]:0x0"
//     args: "bits[21]:0x1b5937"
//     args: "bits[21]:0x4c19e"
//     args: "bits[21]:0xac5e4"
//     args: "bits[21]:0x4708a"
//     args: "bits[21]:0x80"
//     args: "bits[21]:0x1351da"
//     args: "bits[21]:0x195bbd"
//     args: "bits[21]:0x105cc3"
//     args: "bits[21]:0xa8a50"
//     args: "bits[21]:0x199d80"
//     args: "bits[21]:0x2"
//     args: "bits[21]:0x450bc"
//   }
// }
// END_CONFIG
fn main(x1406868: u21) -> u2 {
    !(((x1406868 as u2) >> u2:0x2) >> u2:0x2)
}
